package lei.g_java数组;

import java.util.*;

/**
 * @className: TreeMapTreeSetExample
 * @author: xl
 * @date: 2025/7/15 23:30
 * @Version: 1.0
 * @description: 展示 TreeMap 和 TreeSet 的基本用法
 */
public class TreeMapTreeSetExample {

    public static void main(String[] args) {
        // TreeMap 示例：按 key 排序的 Map

        TreeMap<String, Integer> treeMap = new TreeMap<>();


        treeMap.put("Banana", 3);
        treeMap.put("Apple", 5);
        treeMap.put("Orange", 2);
        treeMap.put("Grape", 4);

        System.out.println("TreeMap 内容（按键排序）：");
        for (Map.Entry<String, Integer> entry : treeMap.entrySet()) {
            System.out.println(entry.getKey() + " => " + entry.getValue());
        }


        // 按 value 排序 TreeMap
        // 将 TreeMap 的键值对转换为 List 并按 value 进行升序排序
        List<Map.Entry<String, Integer>> list = new ArrayList<>(treeMap.entrySet());
        list.sort(Map.Entry.comparingByValue());

        System.out.println("\nTreeMap 内容（按 value 升序排序）：");
        for (Map.Entry<String, Integer> entry : list) {
            System.out.println(entry.getKey() + " => " + entry.getValue());
        }


        // TreeSet 示例：自动排序的 Set
        TreeSet<Integer> treeSet = new TreeSet<>();
        treeSet.add(10);
        treeSet.add(5);
        treeSet.add(15);
        treeSet.add(7);

        System.out.println("\nTreeSet 内容（自动排序）：");
        for (Integer num : treeSet) {
            System.out.println(num);
        }
    }
}
